package cn.com.nes.site.entity.vo.project;

import cn.com.nes.site.entity.bo.project.ProjectSaveBO;
import cn.com.nes.site.entity.vo.BaseVO;
import cn.hutool.core.util.ObjectUtil;
import lombok.Data;
import org.springframework.beans.BeanUtils;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 项目保存入参模型
 */
@Data
public class ProjectSaveVO extends BaseVO {

    /**
     * 自增id
     */
    private Long id;

    /**
     * 项目ID
     */
    private String uuid;

    /**
     * 合同编号
     */
    private String contractNo;

    /**
     * 项目编号
     */
    private String projectId;

    /**
     * 所属部门
     */
    private String departmentId;

    /**
     * 项目名称
     */
    private String projectName;

    /**
     * 计划开始时间
     */
    private Date plannedStartTime;

    /**
     * 计划结束时间
     */
    private Date plannedEndTime;

    /**
     * 服务开始时间
     */
    private Date serviceStartTime;

    /**
     * 服务结束时间
     */
    private Date serviceEndTime;

    /**
     * 投资规模
     */
    private BigDecimal investmentScale;

    /**
     * 行政区域ID
     */
    private String areaCode;

    /**
     * 项目地址
     */
    private String projectAddress;

    /**
     * 负责人
     */
    private String charge;

    /**
     * 服务·模式
     */
    private String serviceMode;

    /**
     * 项目状态：
     * 待排期	01
     * 待分配	02
     * 待施工	03
     * 施工中	04
     * 待检查	05
     * 待验收	06
     * 完毕	    07
     */
    private String projectStatus;

    /**
     * 项目类型
     */
    private String projectType;

    /**
     * 项目级别
     */
    private String projectLevel;

    /**
     * 联系人
     */
    private String contact;

    /**
     * 联系电话
     */
    private String contactPhone;

    /**
     * 纬度
     */
    private BigDecimal latitude;

    /**
     * 经度
     */
    private BigDecimal longitude;

    /**
     * 描述
     */
    private String remark;

    /**
     * 图片
     */
    private String images;

    /**
     * 商机ID
     */
    private String opportunityUuid;

    /**
     * 客户ID
     */
    private String customerUuid;

    /**
     * 扩展字段
     */
    private String jsondata;

    /**
     * 设备型号列表
     */
    private List<String> deviceModels;

    public ProjectSaveBO convertToBo() {
        ProjectSaveBO bo = new ProjectSaveBO();
        BeanUtils.copyProperties(this, bo);
        if (ObjectUtil.isNull(id)) {
            bo.setAddProject(true);
        }
        return bo;
    }
}
